.\" Process this file with
.\" groff -man -Tascii bdep-status.1
.\"
.TH bdep-status 1 "June 2024" "bdep 0.17.0"
.SH NAME
\fBbdep-status\fR \- print status of project and/or its dependencies
.SH "SYNOPSIS"
.PP
\fBbdep status\fR [\fIoptions\fR] [\fIpkg-spec\fR] [\fIcfg-spec\fR]
[\fIdep-spec\fR\.\.\.]\fR
.PP
\fIdep-spec\fR = \fIpkg\fR[\fB/\fR\fIver\fR]
.br
\fIcfg-spec\fR = (\fB@\fR\fIcfg-name\fR | \fB--config\fR|\fB-c\fR
\fIcfg-dir\fR)\.\.\. | \fB--all\fR|\fB-a\fR
.br
\fIpkg-spec\fR = (\fB--directory\fR|\fB-d\fR \fIpkg-dir\fR)\.\.\. |
\fIprj-spec\fR
.br
\fIprj-spec\fR = \fB--directory\fR|\fB-d\fR \fIprj-dir\fR\fR
.SH "DESCRIPTION"
.PP
The \fBstatus\fR command prints the status of project packages and/or their
dependencies in one or more build configurations\.
.PP
If no project or package directory is specified, then the current working
directory is assumed\. If no configuration is specified, then the default
configurations are assumed\. See \fBbdep-projects-configs(1)\fP for details on
specifying projects and configurations\.
.PP
If no \fIdep-spec\fR arguments are specified, then \fBstatus\fR prints the
status of the project's packages\. Otherwise, the status of the specified
dependency packages is printed\. Additionally, the status of immediate or all
dependencies of the above packages can be printed by specifying the
\fB--immediate\fR|\fB-i\fR\fR or \fB--recursive\fR|\fB-r\fR\fR options,
respectively\.
.PP
In the default output format (see the \fB--stdout-format\fR common option),
the status of each package is printed on a separate line\. Note that the
status is written to \fBstdout\fR, not \fBstderr\fR\. The semantics of
\fIdep-spec\fR and the format of the status line are described in
\fBbpkg-pkg-status(1)\fP\.
.PP
If the output format is \fBjson\fR, then the output is a JSON array of objects
which are the serialized representation of the following C++ \fBstruct\fR
\fBconfiguration_package_status\fR:
.PP
.nf
struct configuration
{
  uint64_t         id;
  string           path;
  optional<string> name;
};

struct configuration_package_status
{
  configuration          configuration;
  vector<package_status> packages;
};
.fi
.PP
For example:
.PP
.nf
[
  {
    "configuration": {
      "id": 1,
      "path": "/tmp/hello-gcc",
      "name": "gcc"
    },
    "packages": [
      {
        "name": "hello",
        "status": "configured",
        "version": "1\.0\.0",
        "hold_package": true,
        "available_versions": [
          {
            "version": "1\.0\.1"
          },
          {
            "version": "2\.0\.0"
          }
        ],
        "dependencies": [
          {
            "name": "libhello",
            "status": "configured",
            "version": "1\.0\.2"
          }
        ]
      }
    ]
  }
]
.fi
.PP
See the JSON OUTPUT section in \fBbdep-common-options(1)\fP for details on the
overall properties of this format and the semantics of the \fBstruct\fR
serialization\.
.PP
Refer to the \fBlist\fR subcommand of \fBbdep-config(1)\fP for details on the
\fBstruct\fR \fBconfiguration\fR members\. Refer to \fBbpkg-pkg-status(1)\fP
for the definition of \fBstruct\fR \fBpackage_status\fR\. Note also that in
the \fBjson\fR output format certain conditions (no associated configurations,
no initialized packages, etc) are not treated as errors but instead result in
valid output\. The uninitialized packages have the special \fBuninitialized\fR
\fBstatus\fR value\.
.SH "STATUS OPTIONS"
.IP "\fB--immediate\fR|\fB-i\fR"
Also print the status of immediate dependencies\.
.IP "\fB--recursive\fR|\fB-r\fR"
Also print the status of all dependencies, recursively\.
.IP "\fB--old-available\fR|\fB-o\fR"
Print old available versions\.
.IP "\fB--fetch\fR|\fB-f\fR"
Perform the \fBfetch\fR command prior to printing the status\.
.IP "\fB--fetch-full\fR|\fB-F\fR"
Perform the \fBfetch --full\fR command prior to printing the status\.
.IP "\fB--all\fR|\fB-a\fR"
Use all build configurations\.
.IP "\fB--config\fR|\fB-c\fR \fIdir\fR"
Specify the build configuration as a directory\.
.IP "\fB--directory\fR|\fB-d\fR \fIdir\fR"
Assume project/package is in the specified directory rather than in the
current working directory\.
.IP "\fB--config-name\fR|\fB-n\fR \fIname\fR"
Specify the build configuration as a name\.
.IP "\fB--config-id\fR \fInum\fR"
Specify the build configuration as an id\.
.SH "COMMON OPTIONS"
.PP
The common options are summarized below with a more detailed description
available in \fBbdep-common-options(1)\fP\.
.IP "\fB-v\fR"
Print essential underlying commands being executed\.
.IP "\fB-V\fR"
Print all underlying commands being executed\.
.IP "\fB--quiet\fR|\fB-q\fR"
Run quietly, only printing error messages\.
.IP "\fB--verbose\fR \fIlevel\fR"
Set the diagnostics verbosity to \fIlevel\fR between 0 and 6\.
.IP "\fB--stdout-format\fR \fIformat\fR"
Representation format to use for printing to \fBstdout\fR\.
.IP "\fB--jobs\fR|\fB-j\fR \fInum\fR"
Number of jobs to perform in parallel\.
.IP "\fB--progress\fR"
Display progress indicators for long-lasting operations, such as network
transfers, building, etc\.
.IP "\fB--no-progress\fR"
Suppress progress indicators for long-lasting operations, such as network
transfers, building, etc\.
.IP "\fB--diag-color\fR"
Use color in diagnostics\.
.IP "\fB--no-diag-color\fR"
Don't use color in diagnostics\.
.IP "\fB--bpkg\fR \fIpath\fR"
The package manager program to be used for build configuration management\.
.IP "\fB--bpkg-option\fR \fIopt\fR"
Additional option to be passed to the package manager program\.
.IP "\fB--build\fR \fIpath\fR"
The build program to be used to build packages\.
.IP "\fB--build-option\fR \fIopt\fR"
Additional option to be passed to the build program\.
.IP "\fB--curl\fR \fIpath\fR"
The curl program to be used for network operations\.
.IP "\fB--curl-option\fR \fIopt\fR"
Additional option to be passed to the curl program\.
.IP "\fB--pager\fR \fIpath\fR"
The pager program to be used to show long text\.
.IP "\fB--pager-option\fR \fIopt\fR"
Additional option to be passed to the pager program\.
.IP "\fB--options-file\fR \fIfile\fR"
Read additional options from \fIfile\fR\.
.IP "\fB--default-options\fR \fIdir\fR"
The directory to load additional default options files from\.
.IP "\fB--no-default-options\fR"
Don't load default options files\.
.SH "DEFAULT OPTIONS FILES"
.PP
See \fBbdep-default-options-files(1)\fP for an overview of the default options
files\. For the \fBstatus\fR command the search start directory is the project
directory\. The following options files are searched for in each directory
and, if found, loaded in the order listed:
.PP
.nf
bdep\.options
bdep-status\.options
.fi
.PP
The following \fBstatus\fR command options cannot be specified in the default
options files:
.PP
.nf
--directory|-d
.fi
.SH BUGS
Send bug reports to the users@build2.org mailing list.
.SH COPYRIGHT
Copyright (c) 2014-2024 the build2 authors.

Permission is granted to copy, distribute and/or modify this document under
the terms of the MIT License.
